Control Unit, Image Processing Apparatus and Computer-Readable Storage Medium

ABSTRACT

A memory information storage control method is executed by a control unit which carries out a memory information storage process to generate memory information related to a program being executed by the control unit and to store the memory information. The memory information storage control method includes an interface process to register a storage location of the memory information generated by the memory information storage process, a registering process to register a portable storage device as the storage location of the memory information using the interface process, and an executing process to confirm coupling of the portable storage device to the control unit and to register the storage location of the memory information in the detachably coupled portable storage device by the registering process.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to control units, imageprocessing apparatuses and computer-readable storage media, and moreparticularly to a control unit, an image processing apparatus and acomputer-readable storage medium which stores a program for storingmemory information in a portable storage device. The present inventionalso relates to a memory information storage control method forcontrolling storage of the memory information in the portable storagedevice.

2. Description of the Related Art

Conventionally, in a control unit which executes an application programon a general-purpose Operating System (OS) such as UNIX (registeredtrademark), there is a function of forcibly ending the applicationprogram from the OS when the operation of the application program cannotbe continued in a normal manner. For example, in the general-purpose OStypified by UNIX, if the operation of the application program cannot becontinued in the normal manner, a signal is sent to the applicationprogram to end the processes of the application program, and a core dumpprocess is executed depending on the type of the signal sent from the OSto the application program.

Recently, in image processing apparatuses, such as printing apparatuses,facsimile apparatuses, copying apparatuses and Multi-Function Peripheral(MFPs), which are embedded in advance with predetermined functions, anOS based on the general-purpose UNIX OS is employed because of thedemand to provide numerous functions in order to improve the performanceof the image processing apparatuses. Hence, in such image processingapparatuses, a core dump process is executed if an abnormality isgenerated.

Conventionally, the OS executes the core dump process in a manner shownin FIG. 1. FIG. 1 is a flow chart for explaining an example of aconventional memory information storage process. If an abnormality whichrequires execution of the core dump process is generated, the OS calls acore dump executing part, and the core dump executing part creates aname of a core file in a step S1001 shown in FIG. 13. The core file nameis created using the name, process ID or the like of an applicationprogram which generated the abnormality. Next, the core dump executingpart decides whether the file with the core file name can be created ina work directory of the application program which is the core dumptarget, in a step S1002. The core dump process ends if the file with thecore file name cannot be created in the work directory and the decisionresult in the step S1002 is NO.

If the file with the core file name can be created in the work directoryand the decision result in the step S1002 is YES, the core dumpexecuting part creates the file with the core file name in a step S1003.In addition, the core dump executing part writes memory information usedby the application program in the file with a size of the memory blockmanaged by the OS, in a step S1004.

When the memory information is written to the file, the core dumpexecuting part decides whether the memory information is written in anormal manner, in a step S1005. The core dump process ends if the memoryinformation is not written in the normal manner and the decision resultin the step S1005 is NO.

If the memory information is written in the normal manner and thedecision result in the step S1005 is YES, the core dump executing partdecides whether the memory information that is written is the last blockwithin the memory which is being used by the application program, in astep S1006. If the memory information that is written is not the lastblock within the memory which is being used by the application programand the decision result in the step S1006 is NO, the process returns tothe step S1004, and the steps S1004 through S1006 are carried outsimilarly as described above.

On the other hand, the core dump executing part ends the core dumpprocess if the memory information that is written is the last blockwithin the memory which is being used by the application program and thedecision result in the step S1006 is YES.

The core dump process described above writes the memory information to astorage unit having a large storage capacity, such as a hard disk drive.However, compact and inexpensive apparatuses, such as embeddedapparatuses, are in most cases not provided with the storage unit havingthe large storage capacity, such as the hard disk drive, in order toreduce the cost of the apparatus. In such apparatuses not provided withthe storage unit having the large storage capacity, it is difficult toutilize the core dump function.

A Japanese Laid-Open Patent Application No. 2007-172414 proposes atechnique for generating a core file suited to a preset storage size,prior to executing the core dump process.

In addition, a Japanese Laid-Open Patent Application No. 8-328912proposes a technique for outputting a core file via a network to aremote hard disk drive.

However, according to the techniques proposed in the Japanese Laid-OpenPatent Applications No. 2007-172414 and No. 8-328912, it is difficult topositively execute the core dump process at a low cost.

First, according to the technique proposed in the Japanese Laid-OpenPatent Application No. 2007-172414, the core file is generated bylimiting the storage size. For this reason, the core file that can bestored is limited, and if it becomes necessary to interpret theinformation that is not stored as the core file, the information must beacquired again, thereby making both the processing efficiency andutilization efficiency of the technique poor.

Second, according to the technique proposed in the Japanese Laid-OpenPatent Application No. 8-328912, the core file is output to the remotestorage unit via the network. For this reason, the core file cannot bestored if an apparatus for transmitting the core file is not connectedto the network or, the apparatus for transmitting the core file isconnected to the network but the remote storage unit for storing thecore file cannot be provided.

SUMMARY OF THE INVENTION

Accordingly, it is a general object of the present invention to providea novel and useful control unit, image processing apparatus, memoryinformation storage control method and computer-readable storage medium,in which the problems described above are suppressed.

Another and more specific object of the present invention is to providea control unit, an image processing apparatus, a memory informationstorage control method and a computer-readable storage medium capable ofpositively storing memory information related to a program which isbeing executed, at a low cost.

According to one aspect of the present invention, there is provided acontrol unit comprising a memory configured to store a program; aprocessing unit configured to execute the program stored in the memory;a memory information storage part configured to carry out a memoryinformation storage process which generates memory information relatedto the program being executed by the processing unit and stores thememory information; an interface part configured to register a storagelocation of the memory information generated by the memory informationstorage part; a registering part configured to register a portablestorage device as the storage location of the memory information usingthe interface part; and an executing part configured to confirm couplingof the portable storage device to the control unit and to register thestorage location of the memory information in the detachably coupledportable storage device by the registering part.

According to another aspect of the present invention, there is providedan image processing apparatus comprising an engine configured to carryout an image process; and a control unit coupled to the engine, saidcontrol unit comprising a memory configured to store a program; aprocessing unit configured to execute the program stored in the memory;a memory information storage part configured to carry out a memoryinformation storage process which generates memory information relatedto the program being executed by the processing unit and stores thememory information; an interface part configured to register a storagelocation of the memory information generated by the memory informationstorage part; a registering part configured to register a portablestorage device as the storage location of the memory information usingthe interface part; and an executing part configured to confirm couplingof the portable storage device to the image processing apparatus and toregister the storage location of the memory information in thedetachably coupled portable storage device by the registering part.

According to a further aspect of the present invention, there isprovided a computer-readable storage medium on which a computer-readableprogram for causing a computer to control storage of memory informationis stored, said program comprising a memory information storageprocedure causing the computer to carry out a memory information storageprocess which generates memory information related to a program beingexecuted by the computer and stores the memory information; an interfaceprocedure causing the computer to register a storage location of thememory information generated by the memory information storageprocedure; a registering procedure causing the computer to register aportable storage device as the storage location of the memoryinformation using the interface procedure; and an executing procedurecausing the computer to confirm coupling of the portable storage deviceto the computer and to register the storage location of the memoryinformation in the detachably coupled portable storage device by theregistering procedure.

According to another aspect of the present invention, there is provideda memory information storage control method to be executed by a controlunit which carries out a memory information storage process to generatememory information related to a program being executed by the controlunit and to store the memory information, the memory information storagecontrol method comprising an interface process to register a storagelocation of the memory information generated by the memory informationstorage process; a registering process to register a portable storagedevice as the storage location of the memory information using theinterface process; and an executing process to confirm coupling of theportable storage device to the control unit and to register the storagelocation of the memory information in the detachably coupled portablestorage device by the registering process.

Other objects and further features of the present invention will beapparent from the following detailed description when read inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow chart for explaining an example of a conventionalmemory information storage process;

FIG. 2 is a block diagram showing a structure of a part of an imageprocessing apparatus in one embodiment of the present invention;

FIG. 3 is a block diagram showing a structure of a controller shown inFIG. 2;

FIG. 4 is a diagram showing a program arrangement in a ROM shown in FIG.3;

FIG. 5 is a diagram showing a storage state of a portable storage devicewhich is loaded with respect to a storage device loading port shown inFIG. 3;

FIG. 6 is a diagram showing another program arrangement in the ROM shownin FIG. 3;

FIG. 7 is a diagram showing another storage state of the portablestorage device which is loaded with respect to the storage deviceloading port shown in FIG. 3;

FIG. 8 is a diagram showing a program arrangement in a RAM shown in FIG.3;

FIG. 9 is a flow chart for explaining a portion of a memory informationstorage location registration process of the controller shown in FIG. 3;

FIG. 10 is a flow chart showing a remaining portion of the memoryinformation storage location registration process of the controllershown in FIG. 3;

FIG. 11 is a diagram for explaining a storage location registrationsequence of memory information to a storage location registration list,and a storage location selection sequence at a time of storing thememory information;

FIG. 12 is a flow chart for explaining a portion of a memory informationstorage process of the controller shown in FIG. 3; and

FIG. 13 is a flow chart for explaining a remaining portion of the memoryinformation storage process of the controller shown in FIG. 3.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

A description will be given of embodiments of the control unit, theimage processing apparatus, the memory information storage controlmethod and the computer-readable storage medium according to the presentinvention, by referring to FIGS. 2 through 13.

FIG. 2 is a block diagram showing a structure of a part of an imageprocessing apparatus in one embodiment of the present invention. Inother words, one embodiment of the control unit, the image processingapparatus, the memory information storage control method and thecomputer-readable storage medium according to the present invention isapplicable to an image processing apparatus 1 shown in FIG. 2.

The image processing apparatus 1 shown in FIG. 2 includes a controller2, an operation and display part 3, and an engine 4. The controller 2forms the control unit of this embodiment. The image processingapparatus 1 carries out image processes, such as those carried out by aprinting apparatus, a copying apparatus, a facsimile apparatus, aMulti-Function Peripheral (MFP) and a scanner apparatus. Normally, theimage processing apparatus 1 is connected to a host unit such as acomputer or, is connected to a network.

The operation and display part 2 includes operation keys and a display,such as a Liquid Crystal Display (LCD). Various information andinstructions for causing the image processing apparatus 1 to performvarious operations may be input by the user by manipulating theoperation keys. The display may display various information, includinginformation and instructions input from the operation keys andinformation to be notified from the image processing apparatus 1 to theuser.

The image processes of the image processing apparatus 1 are carried outusing the engine 4. The engine 4 may include the functions of a readengine and/or a print engine. For example, the read engine is used inthe scanner apparatus having a Charge Coupled Device (CCD), and reads adocument image by scanning the document in a main scan direction and asub scan direction and supplies the document image to the controller 2.The print engine forms or prints an image on a recording medium such aspaper, based on image data received from the controller 2, according toa predetermined print system. For example, the print system may be anink-jet system or an electrophotography system.

FIG. 3 is a block diagram showing a structure of the controller 2 shownin FIG. 2. As shown in FIG. 3, the controller 2 includes an ApplicationSpecific Integrated Circuit (ASIC) 10, a Central Processing Unit (CPU)11, a Read Only Memory (ROM) 12, a Random Access Memory (RAM) 13, aNon-Volatile Random Access Memory (NVRAM) 14, a Real Time Clock (RTC)15, an engine interface 16, a Universal Serial Bus (USB) interface 17, anetwork interface 18, and a plurality of storage device loading ports19-1 through 19-n, where n is a natural number greater than 1.

The ROM 12 stores programs and system data required to execute each ofthe programs. In this embodiment, the programs stored in the ROM 12includes a basic program of the image processing apparatus 1, and amemory information storage control program. The memory informationstorage control program, which causes a computer to execute the memoryinformation storage control method, will be described later. By using arewritable flash ROM for the ROM 12, it becomes possible toappropriately update versions of the programs and the system data, andalso easily add programs or software.

The image processing apparatus 1 may read the memory information storagecontrol program from a computer-readable storage medium and install thememory information storage control program in the ROM 12. Thecomputer-readable storage medium may be formed by any suitable mediacapable of storing the program in a manner readable by a computer or aninformation reading apparatus. Such media capable of storing the programin a computer-readable manner include ROMs, Electrically ErasableProgrammable Read Only Memories (EEPROMs), Erasable Programmable ReadOnly Memories (EPROMs), flash memories, flexible disks, Compact DiskRead Only Memories (CD-ROMs), Compact Disk ReWritables (CD-RWs), DigitalVersatile Disks (DVDs), Secure Digital (SD) cards, Magneto-Optic (MO)disks and the like.

The controller 2 forms the control unit which executes the memoryinformation storage control program stored in the ROM 12, in order toexecute the memory information storage control method which storesmemory information of a memory region used by an application programwhen a preset abnormality is generated. For example, the presetabnormality is generated when the application program cannot be executedin a normal manner. The controller 2 stores the memory information inportable storage devices which are loaded with respect to the storagedevice loading ports 19-1 through 19-n.

For example, the memory information storage control program may bewritten in a legacy programming language, such as the assemblerlanguage, C language, C++ language, C# language and Java (registeredtrademark) language or, in an object oriented programming language. Thememory information storage control program is computer-readable, and maybe distributed on the computer-readable storage media, for example.

The CPU 11 uses the RAM 13 as a work memory, and executes the programsstored in the ROM 12 to carry out processes of the image processingapparatus 1, including a memory information storage control processwhich will be described later.

The RAM 13, which is used by the CPU 11 as the work memory, storesvarious information including intermediate information obtained duringvarious operations carried out by the CPU 11.

The ASIC 10 is a customized IC having hardware elements for executingvarious image processes and data input and/or input (I/O) processes. TheASIC 10 controls the functions of and/or exchange of information withthe USB interface 16, the engine interface 17, the network interface 18,and the storage device loading ports 19-1 through 19-n.

The NVRAM 14 maintains the contents stored therein even when the powerof the image processing apparatus 1 is turned OFF. Hence, the NVRAM 14stores information which needs to be maintained even when the power ofthe image processing apparatus 1 is OFF, under the control of the imageprocessing apparatus 1.

The RTC 15 includes an oscillator circuit, a frequency divider circuitand the like, and executes various timer functions such as keeping thepresent time. The CPU 11 uses the present time and the timer functionsof the RTC 15 when executing various processes of the image processingapparatus 1, including the memory information storage process which willbe described later.

The engine interface 16 is connected to the engine 4 shown in FIG. 2.The engine interface 16 supplies control signals and video signals tothe engine 4, and receives status signals and read image data from theengine 4.

The USB interface 17 is connected to a host computer (not shown) or aUSB device (not shown) via a USB cord or cable, and exchanges databetween the host computer or USB device.

The network interface 18 is connected to a network such as the Internet,and receives data transmitted from the host computer via the network andtransmits data to the host computer via the network.

A portable storage device 30 (not shown in FIG. 3) is detachablyloadable with respect to (that is, can be detachably coupled to) each ofthe storage device loading ports 19-1 through 19-n. The portable storagedevice 30 will be described later in conjunction with FIGS. 5 and 7. Thememory information storage process stores the memory information in theportable storage device 30 which is loaded with respect to thecorresponding one of the storage device loading ports 19-1 through 19-n.

The portable storage device 30 may be formed by any suitable media thatis detachably loadable with respect to the corresponding one of thestorage device loading ports 19-1 through 19-n, such as externalmemories and portable recording media. The external memories include asmart media, Compact Flash (CF, registered trademark), Multi-Media Cards(MMCs), SD cards, Memory Sticks (MSs) and the like which can be inserteddirectly into slots of the storage device loading ports 19-1 through19-n. The portable recording media include DVDs, Compact DiskRecordables (CD-Rs) CD-RWs, hard disks and the like which can be loadedwith respect to the storage device loading ports 19-1 through 19-n.

An OS 21, an executing function part 22, an operation part controlfunction part 23 and a copy function part 24, which are programs, arestored in the ROM 12 of the controller 2 as shown in FIG. 4. FIG. 4 is adiagram showing a program arrangement in the ROM 12 shown in FIG. 3. Forexample, the UNIX OS is used for the OS 21.

When the power of the image processing apparatus 1 is turned ON, the CPU11 reads the OS 21 from the ROM 12 into the RAM 13, and starts executingthe OS 21. When the OS 21 is executed, the copy function part 24 and theoperation part control function part 23 are read from the ROM 12 intothe RAM 13 depending on the configuration of the image processingapparatus 1, and the copy function part 24 and the operation partcontrol function part 23 are executed.

The executing function part 22 forms an executing means (or part) havinga function to read an executing program (application program) other thanthe OS 21 from the ROM 12 and to start execution of the executingprogram, and a function to detect an error generated during execution ofthe executing program or an end of execution of the executing program.The executing function part 22 also has a function to monitor theloading of the portable storage device 30 with respect to each of thestorage device loading ports 19-1 through 19-n, to issue a mount processrequest for the portable storage device 30 with respect to the OS 21,and to execute a registering function part 31 which will be describedlater.

The operation part control function part 23 has an application functionto display a state of the image processing apparatus 1 on the display ofthe operation and display part 3, to interpret information orinstructions input from the operation keys of the operation and displaypart 3, and to execute a process based on the interpretation of theinput information or instructions input from the operation keys.

The copy function part 24 has an application function to control theengine 4 and to execute the copy function. For the sake of convenience,FIG. 4 only shows the operation part control function part 23 and thecopy function part 24 as the basic functions of the image processingapparatus 1. However, the image processing apparatus 1 may be providedwith other basic functions, such as the print function, scanner functionand the facsimile function.

FIG. 5 is a diagram showing a storage state of the portable storagedevice 30 which is loaded with respect to the storage device loadingport shown in FIG. 3. As shown in FIG. 5, the portable storage device 30stores a registering function part 31, a setting file 32, and keyinformation 33. The registering function part 31 forms a registrationmeans (or part) to register a storage location of the memory information(hereinafter also referred to as a memory information storage location).The setting file 32 is used by the registering function part 31, and thememory information storage location which is to be registered is writtenin the setting file 31 by the user in advance. In a case where the userdoes not specify the memory information storage location, the settingfile 32 does not need to be stored in the portable storage device 30.

The registering function part 31 does not have to be stored in theportable storage device 30, as may be seen from FIGS. 6 and 7, forexample. FIG. 6 is a diagram showing another program arrangement in theROM 12 shown in FIG. 3, and FIG. 7 is a diagram showing another storagestate of the portable storage device 30 which is loaded with respect tothe storage device loading port shown in FIG. 3. As shown in FIGS. 6 and7, the registering function part 31 is stored in the ROM 12, and thesetting file 32 and the key information 33 are stored in the portablestorage device 30.

The key information 33 indicates that the portable storage device 30 isfor storing the memory information. The key information 33 may beomitted if the storage destination of the memory information is notlimited to the portable storage device 30. However, in the case wherethe registering function part 31 is stored in the image processingapparatus 1 and not in the portable storage device 30 as shown in FIGS.6 and 7, the storage destination of the memory information may belimited to the portable storage device 30 which stores the keyinformation 33, so that the memory information will not be unwillinglyor unknowingly stored in the portable storage device 30 which does notstore the key information 33 in order to prevent leaking of the memoryinformation to a third party and improve security.

As described above, when the power of the image processing apparatus 1is turned ON, the CPU 11 reads the OS 21 from the ROM 12 into the RAM13, and the execution of the OS 21 is started. Then, depending on theconfiguration of the image processing apparatus 1, the copy functionpart 24 and the operation part control function part 23 are read fromthe ROM 12 into the RAM 13, and the copy function part 24 and theoperation part control function part 23 are executed.

In other words, system programs 40 and application programs 50 arearranged in the RAM 13 as shown in FIG. 8. FIG. 8 is a diagram showing aprogram arrangement in the RAM 13 shown in FIG. 3. The system programs40 include the OS 21. This OS 21 includes a registration interface 41which forms an interface means (or part) to register the memoryinformation storage location, a storage location registration list 42 tostore the registered storage locations, and a core dump function 43which forms a memory information storing means (or part) to generate thememory information related to the program (in the memory) which is beingexecuted and to carry out a memory information storage process thatstores the memory information to the registered memory informationstorage location.

The application programs 40 include the executing function part 22, theoperation part control function part 23, the copy function part 24 andthe registering function part 31. The registering function part 31exists in the RAM 13 only when carrying out the memory informationstorage location registration process, and does not always exist in theRAM 13.

Next, a description will be given of the operation of this embodiment.In this embodiment, if a preset abnormality is generated duringexecution of the application program in the image processing apparatus1, the controller 2 carries out the memory information storage processto store the memory information in at least one portable storage device30 which is loaded with respect to the corresponding one of the storagedevice loading ports 19-1 through 19-n. But prior to this memoryinformation storage process, a memory information storage controlprocess is carried out. This memory information storage control processcarries out the memory information storage location registration processto register the portable storage device 30 as the memory informationstorage location.

[Memory Information Storage Location Registration Process]

First, a description will be given of the memory information storagelocation registration process which registers the memory information inthe portable storage device 30, by referring to FIGS. 9 and 10. FIGS. 9and 10 are flow charts for explaining the memory information storagelocation registration process of the controller 2 shown in FIG. 3.

Each of the storage device loading ports 19-1 through 19-n which isloaded with the portable storage device 30 makes a load notification tonotify the executing function part 22 that the portable storage device30 is loaded thereto, in a step S101 shown in FIG. 9. The executingfunction part 22 issues a mount process request for the portable storagedevice 30 with respect to the OS 21 in response to the loadnotification, in a step S102. The OS 21 carries out a mount process tomount the portable storage device 30 in response to the mount processrequest, in a step S103.

The executing function part 22 issues an execution request with respectto the registering function part 31, and makes a mount locationnotification to notify the mount location where the loaded portablestorage device 30 is mounted in the file system of the OS 21 withrespect to the registering function part 31, in a step S104.

Next, as shown in FIG. 10, the registering function part 31 decideswhether the setting file 32 exists within the loaded portable storagedevice 30, in a step S105. If the setting file 32 does not exist in theloaded portable storage device 30 and the decision result in the stepS105 is NO, the registering function part 31 uses the registrationinterface 41 which is provided from the OS 21 to register the mountlocation of the portable storage device 30 notified by the mountlocation notification from the executing function part 22, as the memoryinformation storage location (or core file storage location), in a stepS106, and the memory information storage location registration processends.

Prior to deciding whether the setting file 32 exists within the loadedportable storage device 30 in the step S105, the registering functionpart 31 may check whether the key information 33, which indicates thatthe portable storage device 30 is for use in storing the memoryinformation, exists. In this case, the registering function part 31 maydecide whether the setting file 32 exists within the loaded portablestorage device 30, by determining that the portable storage device 30 isfor use in storing the memory information provided that the keyinformation 33 exists.

If the setting file 32 exists and the decision result in the step S105is YES, the registering function part 31 reads the memory informationstorage location (or core file storage location) from the setting file32, in a step S107. Then, the executing function part 22 combines themount location of the portable storage device 30 received by the mountlocation notification and the memory information storage location (orcore file storage location) read from the setting file 32, and creates aname of the memory information storage location (or core file storagelocation) in the portable storage device 30, in a step S108. Inaddition, the executing function part 22 uses the registration interface41 which is provided from the OS 21 to register the name of the memoryinformation storage location (or core file storage location) that iscreated, in the step S108.

When the registration interface 41 is used, the OS 21 registers thememory information storage location (or core file storage location)which is supplied to the registration interface 41 into the storagelocation registration list 42 within the OS 21, in a step S109 as shownin FIG. 10.

When the registration to the storage location registration list 42 iscompleted, the registering function part 31 decides whether the settingfile 32 includes a memory information storage location (or core filestorage location) for which the memory information storage locationregistration process has not been carried out, in a step S110. If thesetting file 32 includes a memory information storage location (or corefile storage location) for which the memory information storage locationregistration process has not been carried out and the decision result inthe step S110 is YES, the process returns to the step S107 to carry outthe steps S107 through S110.

The registering function part 31 repeats the processes of the steps S107through 110 for the number of memory information storage locations (orcore file storage locations) stored in the setting file 32 and for whichthe memory information storage location registration process has notbeen carried out. If the setting file 32 includes no memory informationstorage location (or core file storage location) for which the memoryinformation storage location registration process has not been carriedout and the decision result in the step S110 is NO, the memoryinformation storage location registration process ends.

Furthermore, when the registration interface 41 is used, the OS 21registers the memory information storage location (or core file storagelocation) which is supplied to the registration interface 41 into thestorage location registration list 42 within the OS 21. When registeringthe memory information storage locations (or core file storagelocations) in this storage location registration list 42, the memoryinformation storage locations (or core file storage locations) may beregistered in an order with which the registration request is made usingthe registration interface 41 or, in an order according to an addressthe memory information storage locations (or core file storagelocations) starting from a smallest address, as shown in FIG. 11, forexample. FIG. 11 is a diagram for explaining a storage locationregistration sequence of the memory information to the storage locationregistration list 42, and a storage location selection sequence at atime of storing the memory information. In FIG. 11, the order accordingto the address is from the top to bottom in FIG. 11, where the addressis larger towards the bottom of the storage location registration list42. On the other hand, when storing the memory information, the storagelocations are selected in an order which is in reverse to (that is, in areverse order compared to) the order with which the memory informationstorage locations are registered.

[Memory Information Storage Process]

Next, a description will be given of the memory information storageprocess to store the memory information, by referring to FIGS. 12 and13. FIGS. 12 and 13 are flow charts for explaining the memoryinformation storage process of the controller 2 shown in FIG. 3.

A preset abnormality requires the memory information storage process (orcore dump process) to be executed. When such a preset abnormality isgenerated during execution of an application program 50, the OS 21 callsthe core dump function part 43, and the core dump function part 43creates a name of a memory information file (or core file) which is tobe created, in a step S201 shown in FIG. 12. The core dump function part43 uses the name, the process ID and the like of the application program50 which generated the preset abnormality when creating the memoryinformation file name (or core file name).

Next, the core dump function part 43 decides whether the memoryinformation storage location (or core file storage location) has beenset, in a step S202. If the decision result in the step S202 is YES, thecore dump function part 43 registers, as a variable m, a value which isobtained by decrementing the number of registered memory informationstorage locations by “1”, in a step S203. In addition, the core dumpfunction part 43 creates a storage name for the memory information file(or core file) from the variable m and the memory information file name(or core file name), in a step S204. In this embodiment, the core dumpfunction part 43 creates the storage name for the memory informationfile (or core file), including the memory information storage location,from the memory information file name (or core file name) created in thestep S201 and the storage location registration list 42. As describedabove, the memory information storage location is selected from thestorage location list 42 in the order which is in reverse to the orderwith which the memory information storage locations are registered. Inother words, the memory information storage locations are selected fromthe storage location list 42 starting from the memory informationstorage location which is registered last towards the memory informationstorage location which is registered first in the storage location list42.

Thereafter, the core dump function part 43 attempts to create the memoryinformation file (or core file) with the memory information file name(or core file name) including the memory information storage location,that is, an absolute path specifying core file name, and decides whetherthe memory information file can be created, in a step S205. If thememory information file can be created and the decision result in thestep S205 is YES, the core dump function part 43 decides whether avacant region which enables the memory information file (or core file)to be created exists in the memory information storage location which isselected as a memory information file (or core file) creating location,in a step S206.

If the decision result in the step S205 is NO or, there is no vacantregion in the selected memory information file (or core file) storagelocation and the decision result in the step S206 is NO, the core dumpfunction part 43 decides whether an unchecked memory information storagelocation (or core file storage location) is registered in the storagelocation registration list 42, in a step S207. If an unchecked memoryinformation storage location (or core file storage location) isregistered in the storage location registration list 42 and the decisionresult in the step S207 is YES, the core dump function part 43 sets, asthe variable m, a value which is obtained by decrementing the variable mby “1”, in a step S208. The process returns to the step S204 after thestep S208, to carry out the steps S204 through S208 with the decrementedvariable m.

On the other hand, if an unchecked memory information storage location(or core file storage location) is not registered in the storagelocation registration list 42 and the decision result in the step S207is NO, the core dump function part 43 judges that the memory informationcannot be stored, and the memory information storage process (or coredump process) ends.

If there is a vacant region in the selected memory information file (orcore file) storage location and the decision result in the step S206 isYES, the core dump function part 43 writes the memory information usedby the application program which generated the preset abnormality intothe created memory information file (or core file) with a memory blocksize which is managed by the OS 21, in a step S209 shown in FIG. 13.Then, the core dump function part 43 decides whether the memoryinformation is written into the memory information file (or core file)in a normal manner, in a step S210.

If the memory information is not written into the memory informationfile (or core file) in the normal manner and the decision result in thestep S210 is NO, the core dump function part 43 judges that the memoryinformation cannot be stored, and the memory information storage process(or core dump process) ends.

If the memory information is written into the memory information file(or core file) in the normal manner and the decision result in the stepS210 is YES, the core dump function part 43 decides whether the writtenmemory information corresponds to the last block of the memory used bythe application program, in a step S211. If the written memoryinformation does not correspond to the last block of the memory used bythe application program and the decision result in the step S211 is NO,the process returns to the step S209 to carry out the steps S209 throughS211.

On the other hand, if the written memory information corresponds to thelast block of the memory used by the application program and thedecision result in the step S211 is YES, the core dump function part 43judges that the memory information storage has been carried out to theend in a normal manner, and the memory information storage process (orcore dump process) ends.

Returning now to the description of FIG. 12, if the memory informationstorage location (or core file storage location) has not been set andthe decision result in the step S202 is NO, the core dump function part43 decides whether a file of the storage name can be created in a workdirectory of the application program which is the target of the memoryinformation storage process, in a step S212. If the file can be createdand the decision result in the step S212 is YES, the process advances tothe step S209 shown in FIG. 13, to carry out the steps S209 through S211as described above.

If the file cannot be created and the decision result in the step S212is NO, the core dump function part 43 judges that the memory informationcannot be stored, and the memory information storage process (or coredump process) ends.

Therefore, in this embodiment, the image processing apparatus 1generates the memory information related to the application program 50(in the memory) which is being executed and carries out the memoryinformation storage process to store the memory information in theportable storage device 30 which is detachable with respect to theinformation processing apparatus 1. In addition, the image processingapparatus 1 registers the portable storage device 30 as the storagelocation of the memory information (memory information storage location)generated by the memory information storage process, when the loading ofthe portable storage device 30 with respect to the image processingapparatus 1 is confirmed. The loading of the portable storage device 30with respect to the image processing apparatus 1 may be confirmed by aknown means.

Accordingly, the memory information can be stored positively at a lowcost (that is, inexpensively) in the portable storage device 30, withoutlimiting the amount of memory information to be stored and withouthaving to connect to a network. Consequently, it is possible to reducethe time required to analyze the generated abnormality, and to improvethe utilization efficiency of the image processing apparatus 1 at a lowcost.

In addition, when the registering function part 31 is installed in thecontroller 2 of the image processing apparatus 1 in this embodiment, theportable storage device 30 for use in storing the memory information maybe used in common among a plurality of kinds of image processingapparatuses which are developing targets. For this reason, it isunnecessary to prepare a large number or a large number of kinds ofportable storage devices 30 for the purposes of acquiring the memoryinformation, and the time and cost required to analyze the abnormalitiescan be reduced.

Moreover, when the registering function part 31 is installed in theportable storage device 30 which is loaded with respect to the imageprocessing apparatus 1 in this embodiment, the loaded portable storagedevice 30 is registered as the memory information storage location.

Hence, it is possible to store the memory information in the portablestorage device 30 only if the registering function part 31 is installedin this portable storage device 30. In other words, the memoryinformation will not be unwillingly or unknowingly stored in theportable storage device 30 which is not installed with the registeringfunction part 31 in order to prevent leaking of the memory informationto a third party and improve security.

On the other hand, when the registering function part 31 is installed inthe image processing apparatus 1 in this embodiment, the registeringfunction part 31 may decide whether the key information 33, whichindicates that the portable storage device 30 is for used in storing thememory information, is prestored in this portable storage device 30which is loaded with respect to the image processing apparatus 1, andregister this portable storage device 30 as the memory informationstorage location provided that the key information 33 is stored in thisportable storage device 30.

In this case, it is possible to store the memory information in theportable storage device 30 only if the key information 33 is stored inthis portable storage device 30. In other words, the memory informationwill not be unwillingly or unknowingly stored in the portable storagedevice 30 which does not store the key information 33 in order toprevent leaking of the memory information to a third party and improvesecurity.

When the setting file 32 which specifies the storage location is storedin the portable storage device 30 which is loaded with respect to theimage processing apparatus 1 in this embodiment, the registeringfunction part 31 may refer to the storage location specified by thesetting file 32 as the memory information storage location.

In this case, it is possible to register an appropriate location desiredby the user as the memory information storage location, using thesetting file 32. For example, it is possible to avoid a plurality ofmemory information from coexisting in the same storage region, and toreduce the time required to analyze the abnormality.

Furthermore, in the image processing apparatus 1 in this embodiment, theregistering function part 31 may register a plurality of memoryinformation storage locations.

Consequently, a plurality of portable storage devices 30 may be used forstoring the memory information. Even when it is necessary tosimultaneously acquire a plurality of memory information, it is possibleto prevent an undesirable situation where the memory informationacquisition fails due to lack of storage capacity of the portablestorage device 30. As a result, the time required to study and analyzethe abnormality can be reduced.

Moreover, when a plurality of memory information storage locations areregistered, the core dump function part 43 of the image processingapparatus 1 in this embodiment checks whether the memory information isstorable in the memory information storage locations, in an order inreverse to the order with which the memory information storage locationsare registered, and stores the memory information in the storable memoryinformation storage locations.

For this reason, it is possible to select the memory information storagelocation from the newly registered memory information storage locations,and to store the memory information in the portable storage device 30which is loaded by the user who is actually performing the analyzingoperation and has a high possibility of being a valid memory informationstorage location, by reflecting the desires of the user who isperforming the analyzing operation. Hence, it is possible to prevent asituation where the memory information cannot be store in the portablestorage device 30 which is loaded with respect to the image processingapparatus 1, and it is possible to reduce the time required to analyzethe generated abnormality.

In addition, in this embodiment, the controller 2 is provided as thecontrol unit in the image processing apparatus 1 which carries out apredetermined image process with respect to the image data. Accordingly,it is possible to appropriately store the memory information which isnecessary to analyze the operations of the image processing apparatus 1,into the portable storage device 30, and positively and efficientlyanalyze the image processing apparatus 1.

In this embodiment, the UNIX OS is used for the OS 21 of the imageprocessing apparatus 1, and the core dump process, which is a memoryinformation storage process, is carried out by utilizing the functionsof the OS 21.

For this reason, the information necessary for the abnormality analysismay be acquired with a generally employed format, and it is possible touse existing software for analyzing the acquired information. As aresult, the memory information storage control method in accordance withthe present invention may be utilized with ease in a simple manner.

Of course, the OS 21 is not limited to the UNIX OS. Any suitable OSwhich has the memory information storage function or, is capable ofadding the memory information storage function by the applicationprogram, may be used for the OS 21.

This application claims the benefit of a Japanese Patent Application No.2008-015845 filed on Jan. 28, 2008, in the Japanese Patent Office, thedisclosure of which is hereby incorporated by reference.

Further, the present invention is not limited to these embodiments, butvarious variations and modifications may be made without departing fromthe scope of the present invention.

1. A control unit comprising: a memory configured to store a program; aprocessing unit configured to execute the program stored in the memory;a memory information storage part configured to carry out a memoryinformation storage process which generates memory information relatedto the program being executed by the processing unit and stores thememory information; an interface part configured to register a storagelocation of the memory information generated by the memory informationstorage part; a registering part configured to register a portablestorage device as the storage location of the memory information usingthe interface part; and an executing part configured to confirm couplingof the portable storage device to the control unit and to register thestorage location of the memory information in the detachably coupledportable storage device by the registering part.
 2. The control unit asclaimed in claim 1, wherein the registering part registers thedetachably coupled portable storage device as the storage location ofthe memory information provided that the detachably coupled portablestorage device prestores key information indicating that the detachablycoupled storage device is for use in storing the memory information. 3.The control unit as claimed in claim 1, wherein the registering part isinstalled in the detachably coupled portable storage device.
 4. Thecontrol unit as claimed in claim 1, wherein the registering part refersto a storage location stored in a setting file which specifies thestorage location, as the storage location of the memory information, ifthe detachably coupled portable storage device stores the setting file.5. The control unit as claimed in claim 1, wherein the registering partregisters a plurality of storage locations of the memory information. 6.The control unit as claimed in claim 5, wherein the memory informationstorage part checks whether the memory information is storable in theplurality of storage locations in an order in reverse to an order withwhich the plurality of storage locations are registered, and stores thememory information in a storable one of the plurality of storagelocations.
 7. The control unit as claimed in claim 1, wherein theprocessing unit generates the memory information when an abnormality isdetected during execution of the program.
 8. An image processingapparatus comprising: an engine configured to carry out an imageprocess; and a control unit coupled to the engine, said control unitcomprising: a memory configured to store a program; a processing unitconfigured to execute the program stored in the memory; a memoryinformation storage part configured to carry out a memory informationstorage process which generates memory information related to theprogram being executed by the processing unit and stores the memoryinformation; an interface part configured to register a storage locationof the memory information generated by the memory information storagepart; a registering part configured to register a portable storagedevice as the storage location of the memory information using theinterface part; and an executing part configured to confirm coupling ofthe portable storage device to the image processing apparatus and toregister the storage location of the memory information in thedetachably coupled portable storage device by the registering part. 9.The image processing apparatus as claimed in claim 8, wherein theregistering part registers the detachably coupled portable storagedevice as the storage location of the memory information provided thatthe detachably coupled portable storage device prestores key informationindicating that the detachably coupled storage device is for use instoring the memory information.
 10. The image processing apparatus asclaimed in claim 8, wherein the registering part is installed in thedetachably coupled portable storage device.
 11. The image processingapparatus as claimed in claim 8, wherein the registering part refers toa storage location stored in a setting file which specifies the storagelocation, as the storage location of the memory information, if thedetachably coupled portable storage device stores the setting file. 12.The image processing apparatus as claimed in claim 8, wherein theregistering part registers a plurality of storage locations of thememory information.
 13. The image processing apparatus as claimed inclaim 12, wherein the memory information storage part checks whether thememory information is storable in the plurality of storage locations inan order in reverse to an order with which the plurality of storagelocations are registered, and stores the memory information in astorable one of the plurality of storage locations.
 14. The imageprocessing apparatus as claimed in claim 8, wherein the processing unitof the control unit generates the memory information when an abnormalityis detected during execution of the program.
 15. A computer-readablestorage medium on which a computer-readable program for causing acomputer to control storage of memory information is stored, saidprogram comprising: a memory information storage procedure causing thecomputer to carry out a memory information storage process whichgenerates memory information related to a program being executed by thecomputer and stores the memory information; an interface procedurecausing the computer to register a storage location of the memoryinformation generated by the memory information storage procedure; aregistering procedure causing the computer to register a portablestorage device as the storage location of the memory information usingthe interface procedure; and an executing procedure causing the computerto confirm coupling of the portable storage device to the computer andto register the storage location of the memory information in thedetachably coupled portable storage device by the registering procedure.16. The computer-readable storage medium as claimed in claim 15, whereinthe registering procedure registers the detachably coupled portablestorage device as the storage location of the memory informationprovided that the detachably coupled portable storage device prestoreskey information indicating that the detachably coupled storage device isfor use in storing the memory information.
 17. The computer-readablestorage medium as claimed in claim 15, wherein the computer executes theregistering procedure by reading a registering part installed in thedetachably coupled portable storage device.
 18. The computer-readablestorage medium as claimed in claim 15, wherein the registering procedurerefers to a storage location stored in a setting file which specifiesthe storage location, as the storage location of the memory information,if the detachably coupled portable storage device stores the settingfile.
 19. The computer-readable storage medium as claimed in claim 15,wherein the registering procedure registers a plurality of storagelocations of the memory information.
 20. The computer-readable storagemedium as claimed in claim 19, wherein the memory information storageprocedure checks whether the memory information is storable in theplurality of storage locations in an order in reverse to an order withwhich the plurality of storage locations are registered, and stores thememory information in a storable one of the plurality of storagelocations.